package org.jeecg.demo.wx.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.demo.wx.dto.QueryIdDto;
import org.jeecg.demo.wx.dto.QueryTaskDto;
import org.jeecg.demo.wx.dto.QueryUserTaskInfoDto;
import org.jeecg.demo.wx.dto.RlSchedulePageDto;
import org.jeecg.demo.wx.entity.RlSchedule;
import org.jeecg.demo.wx.util.PageData;
import org.jeecg.demo.wx.vo.QueryScheduleVO;
import org.jeecg.demo.wx.vo.WorkHandlingVO;

import java.util.List;
import java.util.Map;


public interface IRlScheduleService extends IService<RlSchedule> {

    /**
     * 用户七天日程查询
     *
     * @param entity
     * @return
     */
    Map<String, List<QueryScheduleVO>> queryPageList(RlSchedulePageDto entity);

    /**
     * 查询当天计划
     *
     * @param dto
     * @return
     */
    List<QueryScheduleVO> queryPlanDay(QueryIdDto dto);

    /**
     * 用户添加日程
     *
     * @param rlSchedule
     */
    void saveSchedule(RlSchedule rlSchedule);

    /**
     * 查询用户任务完成情况
     *
     * @param dto
     * @return
     */
    Page<RlSchedule> queryUserTaskInfo(QueryUserTaskInfoDto dto);

    /**
     * 修改个人日程完成状态
     *
     * @param id
     * @param isComplete
     */
    void modifyScheduleState(Integer id, String isComplete);

    /**
     * 工作处理
     *
     * @param dto
     * @return
     */
    PageData<WorkHandlingVO> workHandling(QueryTaskDto dto);

    /**
     * 工作处理条件过滤
     *
     * @param records
     * @param status
     * @return
     */
    List<RlSchedule> queryScheduleFilter(List<RlSchedule> records, String status);

    /**
     * 归档任务
     *
     * @param id
     */
    void archiveTask(String id);

    /**
     * 删除日程同步钉钉
     *
     * @param id
     */
    void removeScheduleById(String id);
}
